package com.cy.pj.sys.web响应标准和全局异常处理;

import com.cy.pj.sys.Service.SysLogService;
import com.cy.pj.sys.commom.Util分页查询的工具类.PageUtil;
import com.cy.pj.sys.pojo.SysLog;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/log/")
public class SysLogController {
@Autowired
    private SysLogService sysLogService; //如果驱动应用了AOP,那么这个耦合的就是底层用JDK创建的SysLogServicelmpl的兄弟实现类

    /**
     * 基于id查询日志信息
     * @param
     * @return
     */
    @GetMapping("{id}")
public JsonResult doFindById(@PathVariable Long id){
        return new JsonResult(sysLogService.selectByIdService(id));
    }

    @DeleteMapping("{id}")
    public JsonResult doDeleteById(@PathVariable Long...id){
        sysLogService.deleteLogsService(id);
        return new JsonResult("删除成功");
    }

    /**
     * 基于条件分页查询日志信息
     * @param sysLog
     * @return
     * url:http://localhost/log/
     *     http://localhost/log/?username=jason
     *     http://localhost/log/?username=jason&status=1
     *     http://localhost/log/?pageCurrent=1&pageSize=5
     */
    @GetMapping
public JsonResult doFindLogs(SysLog sysLog){
return new JsonResult(
        PageUtil.startPage()//启动分页查询拦截
                .doSelectPageInfo(()-> {//分页查询日志信息
                    //调用业务层方法执行查询，查询结果底层会存储到pageInfo对象
                    String a=sysLogService.getClass().getName();
                    System.out.println(a);
                    sysLogService.selectLogsService(sysLog);
                    //假如应用了AOP设计，sysLogService变量指向的是代理对象
                }));
}
}
